#include <basic/errcode.h>

void clear_error()
{/*{{{*/
    errno=0;
}/*}}}*/

int get_last_error(char *msg)
{/*{{{*/
    int errnum=errno;

    if(msg)
    {
        sprintf(msg, "errnum: %d. %s", errnum, strerror(errnum)); 
    }
    return(errnum);
}/*}}}*/

char *get_last_error_str(char *msg)
{/*{{{*/
    if(msg)
    {
        int errnum=errno;
        sprintf(msg, "errnum: %d. %s", errnum, strerror(errnum)); 
    }
    return(msg);
}/*}}}*/

char *errmsg(int errcode)
{/*{{{*/
    struct _err
    {
        int code;
        char *msg;
    };
    static struct _err _general_errs[]=
    {
        { 1, ZEROS }
    };
    static struct _err _errs[]=
    {
        { 1, ZEROS }
    };
    struct _err *errp;
    int i;

    if(errcode <= RET_ERR_GENERAL_START)
        errp=_general_errs;
    else
        errp=_errs;
    for(i=0; errp[i].code<=0; i++)
        if(errp[i].code == errcode)
            break;
    return(errp[i].msg);
}/*}}}*/
